
% create and set a new counter for the ocl

% OCL
\newenvironment{ocl}[2]{
  \noindent \hrulefill\\\\
  {\noindent \bf Description:} #1\\
  {\noindent \bf Context:} #2\\
}{}

\newcommand{\dash}{\hat{\ }}
\newcommand{\pre}[1]{{\noindent \bf Pre:}  \begin{math}#1 \end{math}\\}
\newcommand{\post}[1]{{\noindent \bf Post:} \begin{math}#1\end{math}\\}
\newcommand{\inv}[1]{{\noindent \bf Inv:} \begin{math}#1\end{math}\\}

% SubSystems...

\newenvironment{subSystem}[2]{
  \subsection{#1}
  \label{#1}
  {\noindent \bf Purpose:} #2\\
}{}


% Service functions
\newenvironment{pServices}{{\noindent \bf Provided Services:}\begin{itemize}
    \setlength{\itemsep}{1pt}
    \setlength{\parskip}{0pt}
    \setlength{\parsep}{0pt}
  }{\end{itemize}}

\newenvironment{uServices}{{\noindent \bf Used Services:}\begin{itemize}
    \setlength{\itemsep}{1pt}
    \setlength{\parskip}{0pt}
    \setlength{\parsep}{0pt}
  }{\end{itemize}}

\newcommand{\pService}[2]{\item {\it #1}:\ #2}
\newcommand{\uService}[3]{\item {\bf #1}::{\it #2}:\ #3}

% Thread functions
\newenvironment{threads}{{\noindent \bf Threads:}\begin{itemize}
    \setlength{\itemsep}{1pt}
    \setlength{\parskip}{0pt}
    \setlength{\parsep}{0pt}
  }{\end{itemize}}

\newcommand{\thread}[2]{\item {\it #1}:\ #2}


% susbstystem interface macros
\newcommand{\interface}[3]{{\noindent {\bf #1} and {\bf #2}: #3}}

% pattern macro
\newcommand{\pattern}[1]{\subsection{#1}}

% student config macros
\newcommand{\students}[1]{\newcommand{\st}{#1}}
\newcommand{\revision}[1]{\newcommand{\rev}{#1}}
\newcommand{\assistant}[1]{\newcommand{\assis}{#1}}
\newcommand{\team}[1]{\newcommand{\tm}{#1}}
